

<!DOCTYPE html>
<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
<head>
  <meta charset="utf-8">
  
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  
  <title>compute voronoi/atom command &mdash; LIGGGHTS v3.X documentation</title>
  

  
  
  
  

  

  
  
    

  

  
  
    <link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
  

  

  
    <link rel="top" title="LIGGGHTS v3.X documentation" href="index.html"/> 

  
  <script src="_static/js/modernizr.min.js"></script>

</head>

<body class="wy-body-for-nav" role="document">

   
  <div class="wy-grid-for-nav">

    
    <nav data-toggle="wy-nav-shift" class="wy-nav-side">
      <div class="wy-side-scroll">
        <div class="wy-side-nav-search">
          

          
            <a href="Manual.html" class="icon icon-home"> LIGGGHTS
          

          
          </a>

          
            
            
              <div class="version">
                v3.X
              </div>
            
          

          
<div role="search">
  <form id="rtd-search-form" class="wy-form" action="search.html" method="get">
    <input type="text" name="q" placeholder="Search docs" />
    <input type="hidden" name="check_keywords" value="yes" />
    <input type="hidden" name="area" value="default" />
  </form>
</div>

          
        </div>

        <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
          
            
            
              
            
            
              <ul>
<li class="toctree-l1"><a class="reference internal" href="Section_intro.html">1. Introduction</a></li>
<li class="toctree-l1"><a class="reference internal" href="Section_start.html">2. Getting Started</a></li>
<li class="toctree-l1"><a class="reference internal" href="Section_input_script.html">3. Input Script</a></li>
<li class="toctree-l1"><a class="reference internal" href="Section_commands.html">4. Commands</a></li>
<li class="toctree-l1"><a class="reference internal" href="Section_gran_models.html">5. Contact models</a></li>
<li class="toctree-l1"><a class="reference internal" href="Section_mesh_modules.html">6. Mesh modules</a></li>
<li class="toctree-l1"><a class="reference internal" href="Section_packages.html">7. Packages</a></li>
<li class="toctree-l1"><a class="reference internal" href="Section_howto.html">8. How-to discussions</a></li>
<li class="toctree-l1"><a class="reference internal" href="Section_modify.html">9. Modifying &amp; extending LIGGGHTS(R)-PUBLIC</a></li>
<li class="toctree-l1"><a class="reference internal" href="Section_python.html">10. Python interface to LIGGGHTS(R)-PUBLIC</a></li>
<li class="toctree-l1"><a class="reference internal" href="Section_errors.html">11. Errors</a></li>
</ul>

            
          
        </div>
      </div>
    </nav>

    <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">

      
      <nav class="wy-nav-top" role="navigation" aria-label="top navigation">
        
          <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
          <a href="Manual.html">LIGGGHTS</a>
        
      </nav>


      
      <div class="wy-nav-content">
        <div class="rst-content">
          















<div role="navigation" aria-label="breadcrumbs navigation">

  <ul class="wy-breadcrumbs">
    
      <li><a href="Manual.html">Docs</a> &raquo;</li>
        
      <li>compute voronoi/atom command</li>
    
    
      <li class="wy-breadcrumbs-aside">
        
            
            <a href="_sources/compute_voronoi_atom.txt" rel="nofollow"> View page source</a>
          
          <a href="http://www.cfdem.com"> Website</a>
          
            <a href="Section_commands.html#comm" rel="nofollow"> Commands</a>
            
          
        
      </li>
    
  </ul>

  
  <hr/>
  
</div>
          <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
           <div itemprop="articleBody">
            
  <div class="section" id="compute-voronoi-atom-command">
<span id="index-0"></span><h1>compute voronoi/atom command<a class="headerlink" href="#compute-voronoi-atom-command" title="Permalink to this headline">¶</a></h1>
<div class="section" id="syntax">
<h2>Syntax<a class="headerlink" href="#syntax" title="Permalink to this headline">¶</a></h2>
<div class="highlight-python"><div class="highlight"><pre>compute ID group-ID voronoi/atom general_keyword general_values keyword arg ...
</pre></div>
</div>
<ul class="simple">
<li>ID, group-ID are documented in <a class="reference internal" href="compute.html"><em>compute</em></a> command</li>
<li>voronoi/atom = style name of this compute command</li>
<li>general_keywords general_values are documented in <a class="reference external" href="compute.html&quot;">compute</a></li>
<li>zero or more keyword/value pairs may be appended</li>
<li>keyword = <em>only_group</em> or <em>surface</em> or <em>radius</em> or <em>edge_histo</em> or <em>edge_threshold</em> or <em>face_threshold</em></li>
</ul>
<pre class="literal-block">
<em>only_group</em> = no arg
<em>surface</em> arg = sgroup-ID
  sgroup-ID = compute the dividing surface between group-ID and sgroup-ID
    this keyword adds a third column to the compute output
<em>radius</em> arg = v_r
  v_r = radius atom style variable for a poly-disperse voronoi tessellation
<em>edge_histo</em> arg = maxedge
  maxedge = maximum number of voronoi cell edges to be accounted in the histogram
<em>edge_threshold</em> arg = minlength
  minlength = minimum length for an edge to be counted
<em>face_threshold</em> arg = minarea
  minarea = minimum area for a face to be counted
</pre>
</div>
<div class="section" id="examples">
<h2>Examples<a class="headerlink" href="#examples" title="Permalink to this headline">¶</a></h2>
<div class="highlight-python"><div class="highlight"><pre>compute 1 all voronoi/atom
compute 2 precipitate voronoi/atom surface matrix
compute 3b precipitate voronoi/atom radius v_r
compute 4 solute voronoi/atom only_group
</pre></div>
</div>
</div>
<div class="section" id="description">
<h2>Description<a class="headerlink" href="#description" title="Permalink to this headline">¶</a></h2>
<p>Define a computation that calculates the Voronoi tessellation of the
atoms in the simulation box.  The tessellation is calculated using all
atoms in the simulation, but non-zero values are only stored for atoms
in the group.</p>
<p>By default two quantities per atom are calculated by this compute.
The first is the volume of the Voronoi cell around each atom.  Any
point in an atom&#8217;s Voronoi cell is closer to that atom than any other.
The second is the number of faces of the Voronoi cell, which is also
the number of nearest neighbors of the atom in the middle of the cell.</p>
<hr class="docutils" />
<p>If the <em>only_group</em> keyword is specified the tessellation is performed
only with respect to the atoms contained in the compute group. This is
equivalent to deleting all atoms not contained in the group prior to
evaluating the tessellation.</p>
<p>If the <em>surface</em> keyword is specified a third quantity per atom is
computed: the voronoi cell surface of the given atom. <em>surface</em> takes
a group ID as an argument. If a group other than <em>all</em> is specified,
only the voronoi cell facets facing a neighbor atom from the specified
group are counted towards the surface area.</p>
<p>In the example above, a precipitate embedded in a matrix, only atoms
at the surface of the precipitate will have non-zero surface area, and
only the outward facing facets of the voronoi cells are counted (the
hull of the precipitate). The total surface area of the precipitate
can be obtained by running a &#8220;reduce sum&#8221; compute on c_2[3]</p>
<p>If the <em>radius</em> keyword is specified with an atom style variable as
the argument, a poly-disperse voronoi tessellation is
performed. Examples for radius variables are</p>
<div class="highlight-python"><div class="highlight"><pre>variable r1 atom (type==1)*0.1+(type==2)*0.4
compute radius all property/atom radius
variable r2 atom c_radius
</pre></div>
</div>
<p>Here v_r1 specifies a per-type radius of 0.1 units for type 1 atoms
and 0.4 units for type 2 atoms, and v_r2 accesses the radius property
present in atom_style sphere for granular models.</p>
<p>The <em>edge_histo</em> keyword activates the compilation of a histogram of
number of edges on the faces of the voronoi cells in the compute
group. The argument maxedge of the this keyword is the largest number
of edges on a single voronoi cell face expected to occur in the
sample. This keyword adds the generation of a global vector with
maxedge+1 entries. The last entry in the vector contains the number of
faces with with more than maxedge edges. Since the polygon with the
smallest amount of edges is a triangle, entries 1 and 2 of the vector
will always be zero.</p>
<p>The <em>edge_threshold</em> and <em>face_threshold</em> keywords allow the
suppression of edges below a given minimum length and faces below a
given minimum area. Ultra short edges and ultra small faces can occur
as artifacts of the voronoi tessellation. These keywords will affect
the neighbor count and edge histogram outputs.</p>
<hr class="docutils" />
<p>The Voronoi calculation is performed by the freely available <a class="reference external" href="http://math.lbl.gov/voro++">Voro++ package</a>, written by Chris Rycroft at UC Berkeley and LBL,
which must be installed on your system when building LIGGGHTS(R)-PUBLIC for use
with this compute.  See instructions on obtaining and installing the
Voro++ software in the src/VORONOI/README file.</p>
<div class="admonition warning">
<p class="first admonition-title">Warning</p>
<p class="last">The calculation of Voronoi volumes is performed by
each processor for the atoms it owns, and includes the effect of ghost
atoms stored by the processor.  This assumes that the Voronoi cells of
owned atoms are not affected by atoms beyond the ghost atom cut-off
distance.  This is usually a good assumption for liquid and solid
systems, but may lead to underestimation of Voronoi volumes in low
density systems.  By default, the set of ghost atoms stored by each
processor is determined by the cutoff used for
<a class="reference internal" href="pair_style.html"><em>pair_style</em></a> interactions.  The cutoff can be set
explicitly via the <a class="reference internal" href="communicate.html"><em>communicate cutoff</em></a> command.</p>
</div>
<div class="admonition warning">
<p class="first admonition-title">Warning</p>
<p class="last">The Voro++ package performs its calculation in 3d.
This should still work for a 2d LIGGGHTS(R)-PUBLIC simulation, to effectively
compute Voronoi &#8220;areas&#8221;, so long as the z-dimension of the box is
roughly the same (or smaller) compared to the separation of the atoms.
Typical values for the z box dimensions in a 2d LIGGGHTS(R)-PUBLIC model are -0.5
to 0.5, which satisfies the criterion for most <a class="reference internal" href="units.html"><em>units</em></a>
systems.  Note that you define the z extent of the simulation box for
2d simulations when using the <a class="reference internal" href="create_box.html"><em>create_box</em></a> or
<a class="reference internal" href="read_data.html"><em>read_data</em></a> commands.</p>
</div>
<p><strong>Output info:</strong></p>
<p>This compute calculates a per-atom array with 2 columns.  The first
column is the Voronoi volume, the second is the neighbor count, as
described above.  These values can be accessed by any command that
uses per-atom values from a compute as input.  See <a class="reference internal" href="Section_howto.html#howto-8"><span>Section_howto 15</span></a> for an overview of LIGGGHTS(R)-PUBLIC output
options.</p>
<p>The Voronoi cell volume will be in distance <a class="reference internal" href="units.html"><em>units</em></a> cubed.</p>
</div>
<div class="section" id="restrictions">
<h2>Restrictions<a class="headerlink" href="#restrictions" title="Permalink to this headline">¶</a></h2>
<p>This compute is part of the VORONOI package.  It is only enabled if
LIGGGHTS(R)-PUBLIC was built with that package.  See the <a class="reference internal" href="Section_start.html#start-3"><span>Making LIGGGHTS(R)-PUBLIC</span></a> section for more info.</p>
</div>
<div class="section" id="related-commands">
<h2>Related commands<a class="headerlink" href="#related-commands" title="Permalink to this headline">¶</a></h2>
<p><a class="reference internal" href="dump.html"><em>dump custom</em></a></p>
<p><strong>Default:</strong> none</p>
</div>
</div>


           </div>
           <div class="articleComments">
            
           </div>
          </div>
          <footer>
  

  <hr/>

  <div role="contentinfo">
    <p>
        &copy; Copyright 2016, DCS Computing GmbH, JKU Linz and Sandia Corporation.

    </p>
  </div>
  Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/snide/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>. 

</footer>

        </div>
      </div>

    </section>

  </div>
  


  

    <script type="text/javascript">
        var DOCUMENTATION_OPTIONS = {
            URL_ROOT:'./',
            VERSION:'v3.X',
            LANGUAGE:'None',
            COLLAPSE_INDEX:false,
            FILE_SUFFIX:'.html',
            HAS_SOURCE:  true,
            SOURCELINK_SUFFIX: ''
        };
    </script>
      <script type="text/javascript" src="_static/jquery.js"></script>
      <script type="text/javascript" src="_static/underscore.js"></script>
      <script type="text/javascript" src="_static/doctools.js"></script>

  

  
  
    <script type="text/javascript" src="_static/js/theme.js"></script>
  

  
  
  <script type="text/javascript">
      jQuery(function () {
          SphinxRtdTheme.StickyNav.enable();
      });
  </script>
   

</body>
</html>